iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 25
1
自我挑戰組

初學者也能實做的環控系統系列 第 25

DAY25 mongodb 自動抓取最後一筆資料

  • 分享至 

  • xImage
  •  

上次有說因為我們重開機的時候 不會自動抓取資料 所以可能會導致我們靠繼電器控制的裝置 不會回復到原本的狀態 所以我們需要去取得最後一筆資料
主要的程式碼如下

var MongoClient=require('mongodb').MongoClient;
MongoClient.connect("mongodb://127.0.0.1:27017/test",function(err,client){
    if(err){
        console.log(err);
        console.log('connecting fail');
        return;
    }
    console.log('connecting');
    var db_client = client.db('data_test')
    var db_table = db_client.collection('data')
    db_client.collection('data',function(err,collection){
          collection.find({}).toArray(function(err,items){
      if(err) throw err;
      for(i=0 ; i<items.length-1; i++){
        if(i = items.length-1){
          console.log(items[i]);
        }
      }
      console.log("DATA FOUND");
        });
    });
})

我這邊主要是利用迴圈 去找到mongodb的最後一筆陣列資料
其實應該有比迴圈更好的方法 因為如果資料很多 用迴圈會造成速度緩慢 但我找不到js能用的

成功的畫面如上 可以看到我們抓取到上次insert的最後一筆資料
那我們在插入一筆資料看看 同樣可以看到我們成功抓取到我們插入的最新資料了

利用這個方法 就可以在重開機的時候 去知道我們上一次的狀態 就不會因為重開機導致機器要自己重新啟動
最後要講JSON的功能 雖然很多人可能已經知道了 如果想要JSON格式裡的特定欄位 可以直接使用.+key的名稱 像是

console.log(items[i].time);

這樣我們之後再做分析時 就可以很方便的去比對時間了


上一篇
DAY24 重啟自動抓取資料
下一篇
DAY26 尋找特定時間區間資料
系列文
初學者也能實做的環控系統30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言